gusucode.com > VC++ 汽配销售管理系统(Access)源码程序 > VC++ 汽配销售管理系统(Access)源码程序/源码/DUnit.cpp

    //Download by http://www.NewXing.com
// DUnit.cpp : implementation file
//

#include "stdafx.h"
#include "qpglxt.h"
#include "DUnit.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDUnit dialog


CDUnit::CDUnit(CWnd* pParent /*=NULL*/)
	: CDialog(CDUnit::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDUnit)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CDUnit::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDUnit)
	DDX_Control(pDX, IDC_STAUNIT, m_StaUnit);
	DDX_Control(pDX, IDC_UNIT_LIST, m_List);
	DDX_Control(pDX, IDC_UNIT_EDTUNIT, m_EdtUnit);
	DDX_Control(pDX, IDC_UNIT_EDTID, m_EdtID);
	DDX_Control(pDX, IDC_SPXX_BUTUNDO, m_ButUndo);
	DDX_Control(pDX, IDC_SPXX_BUTSAVE, m_ButSave);
	DDX_Control(pDX, IDC_SPXX_BUTEXIT, m_ButExit);
	DDX_Control(pDX, IDC_SPXX_BUTDELE, m_ButDele);
	DDX_Control(pDX, IDC_SPXX_BUTCHANGE, m_ButChange);
	DDX_Control(pDX, IDC_SPXX_BUTADD, m_ButAdd);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDUnit, CDialog)
	//{{AFX_MSG_MAP(CDUnit)
	ON_BN_CLICKED(IDC_SPXX_BUTADD, OnSpxxButadd)
	ON_BN_CLICKED(IDC_SPXX_BUTCHANGE, OnSpxxButchange)
	ON_BN_CLICKED(IDC_SPXX_BUTDELE, OnSpxxButdele)
	ON_BN_CLICKED(IDC_SPXX_BUTSAVE, OnSpxxButsave)
	ON_BN_CLICKED(IDC_SPXX_BUTUNDO, OnSpxxButundo)
	ON_BN_CLICKED(IDC_SPXX_BUTEXIT, OnSpxxButexit)
	ON_LBN_SELCHANGE(IDC_UNIT_LIST, OnSelchangeUnitList)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDUnit message handlers

void CDUnit::OnOK() 
{
	// TODO: Add extra validation here
		
//	CDialog::OnOK();
}

BOOL CDUnit::OnInitDialog() 
{
	CDialog::OnInitDialog();
	RxRecordset rst;
	rst.Open(m_sDataBaseName);
	m_sUnitTit=m_sUnitTit+":";
	this->m_StaUnit.SetWindowText(m_sUnitTit);
	this->m_List.SetDatabase(rst,m_sField);
	this->SetWindowText(m_sCaption);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDUnit::Clear()
{
	m_EdtUnit.SetWindowText("");
	m_EdtID.SetWindowText("");
	
}

void CDUnit::Display(CString sUnit)
{
	RxRecordset Drxt;
	CString sSQL;
	if(sUnit.IsEmpty())
		return;

	sSQL.Format("SELECT * FROM %s WHERE %s ='%s'",m_sDataBaseName,m_sField,sUnit);
	Drxt.Open(sSQL,adCmdText);
	
	CString sID;
	sID=Drxt.GetFieldValue("编号");
	sUnit=Drxt.GetFieldValue(m_sField);
	m_EdtUnit.SetWindowText(sUnit);
	m_EdtID.SetWindowText(sID);
}
void CDUnit::Enabled(bool bEnabled)
{
	m_EdtUnit.EnableWindow(bEnabled);
	m_List.EnableWindow(!bEnabled);
	m_ButUndo.EnableWindow(bEnabled);
	m_ButSave.EnableWindow(bEnabled);
	m_ButExit.EnableWindow(!bEnabled);
	m_ButDele.EnableWindow(!bEnabled);
	m_ButChange.EnableWindow(!bEnabled);
	m_ButAdd.EnableWindow(!bEnabled);
}

void CDUnit::OnSpxxButadd() 
{
	AddOrChange=1;
	CString sNewID;
	sNewID=ado.AutoNumber(m_sDataBaseName,"编号","",1);
	this->Clear();
	m_EdtID.SetWindowText(sNewID);
	this->Enabled(true);
	this->m_EdtUnit.SetFocus();		
	
}

void CDUnit::OnSpxxButchange() 
{
	AddOrChange=2;
	this->Enabled(true);
	this->m_EdtUnit.SetFocus();		
	
}

void CDUnit::OnSpxxButdele() 
{
	if(MessageBox("确定要删除记录吗?"," 系统提示",MB_OKCANCEL|MB_ICONQUESTION)!=1)
		return;
	CString cID,sSQL;
	this->m_EdtID.GetWindowText(cID);
	sSQL.Format("DELETE FROM %s WHERE 编号=%s",m_sDataBaseName,cID);
	bool isUsing=rst.Open(sSQL,adCmdText);
	if(isUsing==false)
		MessageBox("删除记录失败,一个或多个数据表使用了此条记录!","系统提示",MB_OK|MB_ICONSTOP);
	this->UpdateWindow();
	m_List.Refresh(m_sField);	
}

void CDUnit::OnSpxxButsave() 
{
	if(MessageBox("确定要保存记录吗?"," 系统提示",MB_OKCANCEL|MB_ICONQUESTION)!=1)
		return;
	CString sSQL,sID,sUnit;
	m_EdtID.GetWindowText(sID);
	m_EdtUnit.GetWindowText(sUnit);
	CString stext;
	for(int i=0;i<m_List.GetCount();i++)
	{
		m_List.GetText(i,stext);
		 if(stext==sUnit)
		 {
			MessageBox("您输入的计量单位已经存在,请确认后重新输入!","系统提示",MB_OK|MB_ICONSTOP);
			m_EdtUnit.SetFocus();
			return;
		 }
	}	
	if(this->AddOrChange==1)//添加
		sSQL.Format("INSERT INTO %s VALUES(%s,'%s')",m_sDataBaseName,sID,sUnit);
	else//修改
		sSQL.Format("UPDATE %s SET %s='%s' WHERE 编号=%s",m_sDataBaseName,m_sField,sUnit,sID);
	rst.Open(sSQL,adCmdText);
	this->Enabled(false);
	this->AddOrChange=0;
	m_List.Refresh(m_sField);
	m_ButAdd.SetFocus();

}

void CDUnit::OnSpxxButundo() 
{
	if(MessageBox("确定要撤消操作吗?"," 系统提示",MB_OKCANCEL|MB_ICONQUESTION)!=1)
		return;
	this->Enabled(false);
	this->Clear();
	this->Display(m_sText);
	
}

void CDUnit::OnSpxxButexit() 
{
	this->OnCancel();	
}

void CDUnit::OnSelchangeUnitList() 
{
	CString sText;
	m_List.GetText(m_List.GetCurSel(),sText);
	this->Display(sText);
	m_sText=sText;
}

void CDUnit::SetDataBase(CString sDataBaseName,CString sField,CString sUnitTit)
{
	m_sDataBaseName=sDataBaseName;
	m_sField=sField;
	m_sUnitTit=sUnitTit;
}

void CDUnit::SetCaption(CString sCaption)
{
	m_sCaption=sCaption;
}